package org.sugr.gearshift.ui; import android.app.Dialog; import android.app.TimePickerDialog; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import android.text.format.DateFormat; import android.widget.Button; import android.widget.TimePicker; import org.sugr.gearshift.R; import java.util.Calendar; public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { public static final String ARG_HOUR = "hour"; public static final String ARG_MINUTE = "minute"; public static final String ARG_BEGIN = "begin"; @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current time as the default values for the picker final Calendar c = Calendar.getInstance(); int hour, minute; if (getArguments().containsKey(ARG_HOUR)) { hour = getArguments().getInt(ARG_HOUR); c.set(Calendar.HOUR_OF_DAY, hour); } else { hour = c.get(Calendar.HOUR_OF_DAY); } if (getArguments().containsKey(ARG_MINUTE)) { minute = getArguments().getInt(ARG_MINUTE); c.set(Calendar.MINUTE, minute); } else { minute = c.get(Calendar.MINUTE); } // Create a new instance of TimePickerDialog and return it return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity())); } @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Button button; if (getArguments().containsKey(ARG_BEGIN) && getArguments().getBoolean(ARG_BEGIN)) { button = (Button) getActivity().findViewById(R.id.transmission_session_alt_limit_time_from); ((TransmissionSessionActivity) getActivity()).setAltSpeedLimitTimeBegin(hourOfDay * 60 + minute); } else { button = (Button) getActivity().findViewById(R.id.transmission_session_alt_limit_time_to); ((TransmissionSessionActivity) getActivity()).setAltSpeedLimitTimeEnd(hourOfDay * 60 + minute); } button.setText(String.format( getActivity().getString(R.string.session_settings_alt_limit_time_format), hourOfDay, minute)); } }